package com.catazy.apt_compiler;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.ProcessingEnvironment;
import javax.annotation.processing.RoundEnvironment;
import javax.lang.model.element.TypeElement;
import javax.annotation.processing.Messager;


/**
 * 作者: Tao
 * 日期: 2024/5/23
 * 时间: 16:26
 * 描述: 登录注解处理器
 * 主要作用: AbstractProcessor 是一个抽象类，继承了 Processor 接口，是注解处理器的基类，我们自定义的注解处理器需要继承这个类。
 */
public class LoginProcessor extends AbstractProcessor {

    private String pkName = "com.android.processor.apt";

    // Messager 是一个用来报告错误、警告和其他提示信息的通知接口
    private Messager mMessager;

    private List<String> pageList;

    @Override
    public synchronized void init(ProcessingEnvironment processingEnv) {
        super.init(processingEnv);
        mMessager = processingEnv.getMessager();
        pageList = new ArrayList<>();
    }

    @Override
    public Set<String> getSupportedAnnotationTypes() {

        HashSet<String> supportTypes = new LinkedHashSet<>();
        supportTypes.add(RequireLogin.class.getCanonicalName());
        return supportTypes;
    }

    @Override
    public boolean process(Set<? extends TypeElement> set, RoundEnvironment roundEnvironment) {
        return false;
    }
}
